This invention relates to a controller for an automated apparatus, such as an industrial robot, comprising a plurality of operating units which operate independently while cooperating with one another. More particularly, the invention relates to improvements in a man-machine interface during, for example, the development process of such a controller.
The inventors of this application have previously proposed a control unit for such an automated apparatus (namely an automatic assembly apparatus) in the specifications of U.S. Ser. No. 227,551 (filed Aug. 3, 1988) entitled "Controller for Automatic Assembling Apparatus" and U.S. Ser. No. 227,307 (filed Aug. 2, 1988) entitled "Automatic Article Feeding System".
In these earlier applications, an automatic article feeding system is disclosed and, as shown in FIG. 2, comprises an assembling robot 1 for grasping and assembling parts, a stocker 2 which houses, in multiple tiers, pallets accommodating a plurality of parts and from which the pallets can be extracted one at a time and supplied to the robot side, an elevator 3 for replacing empty pallets with new pallets, and a buffer 4 in which a plurality of new pallets are stored in advance so that these new pallets can be used to replenish the empty pallets replaced via the elevator 3. These earlier applications disclose also a controller for parallel control of the robot 1, stocker 2, elevator 3 and buffer 4 by means of a multibus/multitask control program method.
The construction of a control system using this multibus/multitask control program method disclosed in these earlier applications is shown in FIG. 3. This control system includes a main controller 10 composed of four servo-modules 10a through 10d each of which controls servo-motors M, and a master module 10e for managing and commanding these servo-modules by multitask processing. The four servo-modules 10a through 10d each execute control of the servomotors M used by respective ones of the robot 1, stocker 2, elevator 3 and buffer 4, and each servo-module contains an internal microprocessor or the like for performing such control. In other words, the robot 1, stocker 2, elevator 3 and buffer 4 constitute "operating units" in such a manner that the robot 1, stocker 2, elevator 3 and buffer 4 controlled by the corresponding servo-modules operate independently while overall cooperation among the modules is supervised by the master module 10e.
The operation of each operating unit and an indication of the status thereof are performed by a control-panel terminal 13 or teaching pendant 14 connected to the main controller 10 by an RS232C interface. The control-panel terminal 13 is referred to as an input/output device in the earlier applications.
It is possible for the control-panel terminal 13 or teaching pendant 14 to have its connection changed over with regard to any of the operating units.
An I/O module 11 is connected to a multibus 15 of the main controller 10 and performs an exchange of information via the master module 10e within the main controller 10 and a common memory 12. The devices controlled by the I/O unit 11 are all of the sensors and solenoids used by each operating unit. Since these sensors and solenoids perform simple input/output operations, they can be referred to as "input/output elements" in the narrow sense of the term.
The reason for thus constructing the control system in module form is to facilitate design of the control algorithms.
While a servo-module is provided for every operating unit, a single I/O module is shared by the operating units. More specifically, the sensors and solenoids of all operating units are supervised, under the master module 10e, by the single I/O module (i.e., the microprocessor within the module). According to the inventors, there are two reasons for the foregoing, as follows:
First, since servo-control by a servo-module entails comparatively sophisticated control, the construction of the module also is comparatively large in scale. Consequently, through a servo-module is required to correspond to each operating unit, control of sensors, solenoids and the like is a simple sequence operation, and therefore one microprocessor (i.e., one I/O module) is capable of controlling a large number of elements. Second, whereas servo-control requires a comparatively long period of time for one series of operations to end, a short period of time suffices for control of the sensors, solenoids and the like. For example, in order to turn a solenoid on, all that need be done is to deliver an ON signal to the particular solenoid. The reasons for the short time required for this control are that it is better to effect a division into servo-control and simple I/O control in order to enhance the efficiency and simplicity of the algorithms for the overall cooperative operation performed by the master module, and that servo-control is more efficient when left to servo-modules, since the master controller 10e is freed from monitoring the termination of servo-operation.
In the control system configuration of these earlier applications, sensor signal input and simple input/output operations such as solenoid drive are controlled by the single I/O module 11 for all operating units. Therefore, when the master module 10e controls these sensors and solenoids, the inputs and outputs of the input/output elements are managed using physical numbers (addresses).
In one bus system, the physical numbers (addresses) applied to the controlled devices such as the input/output elements must be mutually exclusive. This requirement is unconditional. Accordingly, when an assembly application program for performing automatic assembly by the above-described article feeding system is created, exclusive physical numbers are assigned at the time of program creation. For example, if each operating unit in the system of FIG. 2 has ten solenoids, generally the physical numbers "0"-"9" are assigned to the solenoids of the robot 1, the physical numbers "10"-19" to the solenoids of the stocker 2, the physical numbers "20"-"29" to the solenoids of the elevator 3, and the physical numbers "30"-"39" to the solenoids of the buffer 4.
From the viewpoint of ease of management in the program development process, all of the "input/output elements" associated with the same operating unit should be apportioned consistent numbers. If consistent numbers are assigned with regard to all input/output elements of a certain operating unit, the person developing the program will be capable of recognizing the correspondence between the input/output elements and the operating unit intuitively based on these numbers.
In the process of developing such a large-scale automatic assembling apparatus, situations arise in which input/output elements such as solenoids and sensors must be added anew to the already existing input/output elements.
Assume that a new solenoid, for example, has been added to the robot 1 in FIG. 2. Since the numbers from "0" to "39" have already been assigned in the foregoing example, "40" would have to be assigned as the physical number of the added solenoid.
In the development process of an actual robot program, the aforementioned addition of new elements can take place irregularly or when not expected. Consequently, at the end of the program development process, it is possible that the numbers that have been apportioned to the input/output elements of each operating unit will exhibit no consistency. If such a situation arises, management of the input/output elements by the programmer can become very inefficient and many errors may occur.
In particular, since programming is accomplished using the single terminal 13 or the single teaching pendant 14, the inefficiency and likelihood of errors mentioned above is a major problem.
Other difficulties are also encountered. Specifically, assigning consistent numbers to all of the input/output elements of one operating unit is of course possible by providing a physical-number setting device for each and every operating unit. However, this would require a number of control-panel terminals each having a display function necessary for the setting operation. Conversely, if a control-panel terminal dedicated solely to the I/O module 11 is provided, a display assigned to each of the operating units cannot be presented. Consequently, inconvenience is encountered in terms of operation and operating errors are likely to occur.
These difficulties arise not only in the program development process but also when, say, the system shuts down during actual operation at an assembly plant and the terminal 13 indicates to the supervisor which portion of which unit is the cause of the shut-down.
This problem is not limited to the narrowly defined "input/output elements" such as the sensors and solenoids of the I/O module but applies also to broadly defined "input/output elements" such as servomotors. The reason is that a plurality of servomotors are sometimes installed within the same operating unit and servo-control of these motors is sometimes performed by a common servo-module. Whether or not it is possible for such control to be carried out by a common servo-module is only a matter of the degree of circuit integration.